package com.ruoyi.kyjData.service;

import com.ruoyi.kyjData.domain.pad.DataKyjModifyReqDTO;
import com.ruoyi.kyjData.domain.pad.KyjTaskResqDTO;
import com.ruoyi.kyjData.domain.plat.DataKyj;

import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;

/**
 * 空压机测试结果Service接口
 * 
 * @author ruoyi
 * @date 2023-11-16
 */
public interface IDataKyjService 
{
    /**
     * 查询空压机测试结果
     * 
     * @param kyjId 空压机测试结果主键
     * @return 空压机测试结果
     */
    DataKyj selectDataKyjByKyjId(Long kyjId);

    /**
     * 查询空压机测试结果列表
     * 
     * @param dataKyj 空压机测试结果
     * @return 空压机测试结果集合
     */
    List<DataKyj> selectDataKyjList(DataKyj dataKyj);

    /**
     * 新增空压机测试结果
     * 
     * @param dataKyj 空压机测试结果
     * @return 结果
     */
    int insertDataKyj(DataKyj dataKyj);

    /**
     * 修改空压机测试结果
     * 
     * @param dataKyj 空压机测试结果
     * @return 结果
     */
    int updateDataKyj(DataKyj dataKyj);

    /**
     * 批量删除空压机测试结果
     * 
     * @param kyjIds 需要删除的空压机测试结果主键集合
     * @return 结果
     */
    int deleteDataKyjByKyjIds(Long[] kyjIds);

    /**
     * 删除空压机测试结果信息
     * 
     * @param kyjId 空压机测试结果主键
     * @return 结果
     */
    int deleteDataKyjByKyjId(Long kyjId);

    /**
     * 根据任务id删除
     */
    int deleteDataKyjByDataTaskId(Long dataTaskId);

    /**
     * 批量新增空压机数据
     * @param list
     * @return
     */
    int batchDataKyj(List<DataKyj> list);

    /**
     * 根据任务id获取所有空压机数据
     * @param dataTaskId
     * @return
     */
    Future<List<DataKyj>> selectAllByDataTaskId(Long dataTaskId);

    /**
     * 根据任务Id获取空压机任务数据
     */
    KyjTaskResqDTO selectKyjTaskByDataTaskId(Long dataTaskId) throws ExecutionException, InterruptedException;

    /**
     * 批量更新空压机数据
     * @param resultList
     * @return
     */
    int updateBatch(List<DataKyj> resultList);

    /**
     * 修改测试数据状态2
     */
    public int updateDataKyjByDataTaskId(Long dataTaskId);


    /**
     * 修改测试数据状态变更2
     */
    public int  updateDataKyjByHjId(Long dataTaskId, Long kyjId);

    /**
     * 空压机电机参数调整
     */
    DataKyj modify(DataKyjModifyReqDTO dataKyjModifyReqDTO);

    /**
     * 空压机报告导入
     */
    String dataKyjImportReport(DataKyj dataKyj);
}
